Added a catch block to the pushWithReply expression to handle uncaught promise timeout error#3760
Closed
Harrison1 wants to merge 1 commit intophoenixframework:mainfrom
Harrison1:pushinput-pushwithreply-catch
Closed
Added a catch block to the pushWithReply expression to handle uncaught promise timeout error#3760Harrison1 wants to merge 1 commit intophoenixframework:mainfrom Harrison1:pushinput-pushwithreply-catch
Harrison1 wants to merge 1 commit intophoenixframework:mainfrom
Harrison1:pushinput-pushwithreply-catch
Conversation
andreealung96
approved these changes
Apr 16, 2025
SteffenDE
added a commit
that referenced
this pull request
Apr 16, 2025
#3443 changed the pushWithReply function to use promises instead. Previously, if we did not handle the timeout, it was just ignored, but now we reject the promise, which will cause unhandled promise rejections. This PR adds catch clauses to all cases where we previously did not handle the timeout. At the moment, these log an error, but we can also silently drop if we want. cc @chrismccord Supersedes #3760.
Collaborator
|
Thank you @Harrison1! I think we should actually do this in more places, so closing this in favor of #3763. |
Author
Thank you @SteffenDE , Absolutely, I totally agree, thanks so much, your PR looks great. |
SteffenDE
added a commit
that referenced
this pull request
Apr 16, 2025
#3443 changed the pushWithReply function to use promises instead. Previously, if we did not handle the timeout, it was just ignored, but now we reject the promise, which will cause unhandled promise rejections. This PR adds catch clauses to all cases where we previously did not handle the timeout. At the moment, these log an error, but we can also silently drop if we want. cc @chrismccord Supersedes #3760.
SteffenDE
added a commit
that referenced
this pull request
Apr 16, 2025
#3443 changed the pushWithReply function to use promises instead. Previously, if we did not handle the timeout, it was just ignored, but now we reject the promise, which will cause unhandled promise rejections. This PR adds catch clauses to all cases where we previously did not handle the timeout. At the moment, these log an error, but we can also silently drop if we want. cc @chrismccord Supersedes #3760.
SteffenDE
added a commit
that referenced
this pull request
Apr 16, 2025
#3443 changed the pushWithReply function to use promises instead. Previously, if we did not handle the timeout, it was just ignored, but now we reject the promise, which will cause unhandled promise rejections. This PR adds catch clauses to all cases where we previously did not handle the timeout. At the moment, these log an error, but we can also silently drop if we want. cc @chrismccord Supersedes #3760.
SteffenDE
added a commit
that referenced
this pull request
Apr 16, 2025
* Catch promise rejections from pushWithReply #3443 changed the pushWithReply function to use promises instead. Previously, if we did not handle the timeout, it was just ignored, but now we reject the promise, which will cause unhandled promise rejections. This PR adds catch clauses to all cases where we previously did not handle the timeout. At the moment, these log an error, but we can also silently drop if we want. cc @chrismccord Supersedes #3760. * don't catch for pushHookEvent
SteffenDE
added a commit
that referenced
this pull request
Apr 16, 2025
#3443 changed the pushWithReply function to use promises instead. Previously, if we did not handle the timeout, it was just ignored, but now we reject the promise, which will cause unhandled promise rejections. This PR adds catch clauses to all cases where we previously did not handle the timeout. At the moment, these log an error, but we can also silently drop if we want. cc @chrismccord Supersedes #3760.
SteffenDE
added a commit
that referenced
this pull request
Apr 16, 2025
* Catch promise rejections from pushWithReply #3443 changed the pushWithReply function to use promises instead. Previously, if we did not handle the timeout, it was just ignored, but now we reject the promise, which will cause unhandled promise rejections. This PR adds catch clauses to all cases where we previously did not handle the timeout. At the moment, these log an error, but we can also silently drop if we want. cc @chrismccord Supersedes #3760. * don't catch for pushHookEvent
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Added a catch block to the
this.pushWithReplyfunction insidepushInputto handle anUncaught (in promise) {timeout: true}error.The motivation is to handle the uncaught promise error thrown inside
view.jsusually thrown in idle tabs. In a production app we're seeing a lot ofUncaught (in promise) {timeout: true}errors thrown in the console with Sentry reporting aUnhandledRejection: Object captured as promise rejection with keys: timeout. We've typically noticed this error when a user's tab goes idle , either through inactivity or on mobile through switching apps or closing their device for an extended period of time.Browser Error
Browser view.js Trace